package models

import (
	"time"

	"gorm.io/gorm"
)

// 永远也不要管表的id，而是表的其他唯一标识字段

// Doctor 存储医生的基本信息，创建医生不能重复医生联系电话或邮箱,而且邮箱或电话是必传参数
// 每个model表的第一个id不用管让他自增主键，但是除开id，应该有一项唯一标识身份的字段
// 医生表的唯一标识字段是医生联系电话
type Doctor struct {
	gorm.Model
	DoctorID    uint      `gorm:"primary_key;auto_increment;not null" json:"doctor_id"` // 医生ID
	Name        string    `gorm:"type:varchar(50);not null" json:"name"`                // 医生姓名
	Gender      string    `gorm:"type:varchar(10);not null" json:"gender"`              // 医生性别
	DateOfBirth time.Time `gorm:"type:date;not null" json:"date_of_birth"`              // 医生出生日期
	Department  string    `gorm:"type:varchar(50);not null" json:"department"`          // 医生所属科室
	Position    string    `gorm:"type:varchar(50)" json:"position"`                     // 医生职称
	// 医生联系电话唯一改成unique
	ContactPhone string `gorm:"type:varchar(15);not null;unique" json:"contact_phone"` // 医生联系电话
	// 邮箱唯一改成unique
	Email string `gorm:"type:varchar(100) not null;unique" json:"email"` // 医生邮箱
	// 地址
	Address string `gorm:"type:varchar(200)" json:"address"` // 医生地址
}
